
                               AIDE

Cette aide est du type hypertexte.

Trois touches importantes:

                     Ctrl-X pour terminer
                     F1     pour lire cette aide
                     F10    pour un menu plus long que
                            la ligne de menu

L'éditeur fonctionne sous divers menus

La ligne d'état fournit diverses indications

Cet éditeur est un exemple d'utilisation de ccTEDm.LIB.

                           Menu Edition

Outre les touches usuelles les touches suivantes sont actives
   Flèches       déplacement du curseur dans le sens de la flèche
   Home          début de ligne
   End           fin de ligne
   PgUp          page précédente
   PgDn          page suivante

   Ctrl-PgUp     début du fichier en mémoire
   Ctrl-PgDn     fin du fichier en mémoire
 Les deux touches précédentes ont une fonction supplémentaire lorsque
le fichier édité est plus grand que la mémoire disponible:
   Ctrl-PgUp     demande le morceau précédent si elle est frappée
                 sur la première ligne en mémoire
   Ctrl-PgDn     demande le morceau suivant si elle est frappée sur
                 la dernière ligne en mémoire
   Ctrl-flèches  mot suivant/précédent
   Ctrl-K        destruction d'une ligne
   Ctrl-Y        restauration de la dernière destruction

On peut RESTAURER ces destructions par Ctrl-Y ou F4-Ins.
Ces touches ont la même fonction dans un contexte mono-fenêtre mais
en cas d'utilisation simultanée de plusieurs fenêtres elles diffèrent:
   F4/Inser restaure le texte de la fenêtre courante seulement
   Ctrl-Y restaure le dernier texte détruit même dans une autre fenêtre,
autorisant ainsi le couper/coller entre fenêtres.

   Suppr         efface le caractère sous le curseur ou joint la ligne
                 courante et la suivante quand pressé en fin de ligne.
   <--           efface le caractère à gauche du curseur ou, en début
                 de ligne, joint la ligne courante à la précédente.
   Inser         commute les modes insertion/remplacement (signalé
                 par les caractères I/R dans le coin droit de la ligne
                 d'état).
   TAB           aligne la ligne courante sur le premier caractère non
                 "blanc" situé au dessus à droite. (Utiliser ESC TAB
                 pour entrer une "vraie" tabulation).
   Shift-TAB     idem TAB mais vers la gauche.

L'éditeur fonctionne en mode insertion ou remplacement respectivement
signalés par un I ou un R en haut à droite de la fenêtre.

La fin du fichier est indiquée à l'écran par le caractère de code
ASCII 19 (deux points d'exclamation).


                            Menu Principal

   F1            affichage de ce fichier d'aide
   F2            sauvegarde du fichier DE LA FENETRE courante
   F3            chargement du fichier DE LA FENETRE courante
   F4            activation de menu BLOC
   Ctrl-Y        copie du contenu de la poubelle à la position
                 courante
   F6            activation du menu FENETRES
   Ctrl-S        recherche d'une chaîne de caractères
   Ctrl-R        recherche et remplacement d'une chaîne de caractères
   F8            activation du menu MACROS
   Echap         autorise l'entrée d'un caractère "spécial"
                 (par défaut, seuls les caractères imprimables sont
                 autorisés)
   Shift-F10     appelle MSDOS. Entrer une commande vide permet de
                 sortir temporairement de l'éditeur. On y revient en
                 tapant EXIT.
   Shift-F3      appel du menu goto
   Shift-F9      centrage d'une ligne (HE seulement)


                              Menu Bloc

Il est mis en oeuvre par F4

   F4     début/fin du marquage d'un bloc
   Inser  insère le contenu de la poubelle à la position courante du
          curseur
   Suppr  efface le bloc marqué. Son contenu passe à la poubelle
   C      copie le bloc marqué dans la poubelle
   L      lit un bloc depuis un fichier et l'insère à la position
          courante
   S      sauve le bloc marqué dans un fichier
   P      envoie le bloc marqué à l'imprimante (ATTENTION les fichiers
          hypertexte ne sont pas imprimables)
   I      indentation (au sens SCHEME) du bloc

Il n'y a pas de touche particulière pour déplacer un bloc. Pour ça:
       1) marquer le bloc (F4)
       2) l'effacer (Suppr)
       3) aller au nouvel emplacement
       4) restaurer par Inser ou F5


                            Menu Fenêtres

Il est actionné par la touche F6

   B        fixe la taille du buffer texte des fenêtres ouvertes
            ULTERIEUREMENT (ne change donc pas la taille des buffers
            déjà ouverts)
   O        ouverture d'une fenêtre
   F        fermeture d'une fenêtre
   P, S     changement de fenêtre: on fait défiler les fenêtres et on
            choisit par ENTREE

   Les fenêtres sont empilées de telle sorte que la fenêtre courante
devienne le sommet de pile.


                               Spécial

   Echap permet l'entrée de caractères de contrôle (code ASCII < 32):
         le caractère suivant ESC est entré tel quel: ça autorise en
         particulier d'insérer TOUT caractère autre que ^J et ^M, y
         compris ceux réservés par TED (ESC, ^X...).

ATENTION l'entrée de ^Z peut poser des problèmes avec des logiciels
         qui le prennent comme fin de fichier.


                             Menu Macros

Il est activé par la touche F8

   E   enregistre la séquence de touches jusqu'à ce que la touche F8
       soit à nouveau pressée
   R   restitue une macro à partir de son alias
   S   sauve des macros en mémoire dans un fichier.
   L   charge un fichier de macros. Au lancement de l'éditeur un
       fichier de macros peut être défini sur la ligne de commande,
       sinon le fichier de macros par défaut (TED.MAC) est chargé
       automatiquement s'il est trouvé.
   A   associe une macro à une touche de déclenchement unique
   D   détruit une macro
   M   montre les macros actuellement définies en mémoire sous le
       format: ( touche ) alias = séquence


                              Menu Goto

Il est activé par la touche Shift-F3

   S   sauvegarde à la fois la position courante dans le texte et le
       numéro de la ligne et de la colonne courante
   R   retour à une ligne/colonne préalablement sauvegardée
   P   retour à une position dans le texte préalablement sauvegardée
   L   va à une ligne requise

   ATTENTION: les touches R et P peuvent ne pas donner le résultat
escompté si le texte a été beaucoup modifié depuis la dernière
sauvegarde...



                             Menu Compile

    A la sortie de EDLISP il est possible de sélectionner tout ou
partie du texte pour la faire compiler par PCS. Les touches actives
sont:
    F1   marque du début du bloc (par défaut le début du texte)
    F2   sauvegarde du bloc marqué
    F3   sauvegarde de tout le texte
    ESC  sortie sans rien sauvegarder.

    ATTENTION: la possibilité de compilation n'est valable que pour
la fenêtre "principale" c'est à dire celle passée en premier sur la
ligne de commande à l'appel de EDLISP (PCS n'autorise qu'un seul fichier
BUFFER.TMP).


MENUS

    Menu Principal
    Menu Edition
    Menu Bloc
    Menu Fenêtres
    Menu Macros
    Menu Compile
    Menu Goto


MORCEAU

   Quand un fichier est trop grand pour tenir en entier dans l'éditeur,
il est édité par morceaux de taille fixe (et modulable).

On navigue de morceau en morceau en pressant Ctrl-PgUp en haut du
morceau courant (Ctrl-PgDn en bas).


FENETRE

    Ce mot désigne deux choses:
      - physiquement, la portion de l'écran occupée par l'éditeur.
      - logiquement, l'ensemble d'une portion d'écran et de divers
objets nécessaires au fonctionnement de l'éditeur: mémoire (buffer),
position, forme du curseur...


FENETRE COURANTE

    C'est celle qui est actuellement affichée.


BUFFER

    C'est l'emplacement mémoire réservé au texte du fichier en cours
d'édition. Sa taille peut être modifiée à tout instant, la
modification étant prise en compte lors d'un chargement ULTERIEUR de
fichiers.

    Une petite taille permet d'éditer simultanément un plus grand
nombre de fichiers mais peut obliger un fichier à être édité par
morceaux ce qui est moins confortable.


POUBELLE

   C'est une zone TEMPORAIRE de la mémoire où est placé le résultat de
toute opération de destruction ou de copie.

   ATTENTION seule la DERNIERE destruction peut être annulée.


BLOC

   C'est un groupe de lignes consécutives, la première et la dernière
pouvant être partielles.


TAB

   La touche marquée  |<--
                      -->|


AIDE

   Cette aide fonctionne sous le mode hypertexte: certains mots
sont marqués en couleur (bouton) ce qui signifie qu'une information
spécifique leur est dédiée.

   On navigue de mot en mot par la touche de tabulation TAB.

   Quand le texte d'aide est plus grand que la fenêtre on se déplace
dans le texte à l'aide des touches de déplacement du curseur.

   Pour sortir d'une fenêtre d'aide presser ESC.


ESC

   La touche marquée Echap en haut à gauche du clavier (étendu) ou
en haut à gauche du pavé numérique pour les claviers PC.

   Elle a une signification différente en fonction du contexte:
    - en mode édition, elle permet d'entrer un caractère spécial
    - dans un menu, elle permet d'en sortir
    - elle termine une commande


TERMINER

   La touche Alt-X permet aussi de terminer sous MSDOS.

   Toutes les fenêtres sont fermées l'une après l'autre. Si un fichier
a été modifié (ce qui est signalé par un * sur la ligne d'état) on a
l'opportunité de le sauver. ESC interrompt la sortie, mais les fenêtres
déjà fermées le restent.


HYPERTEXTE

   Un procédé qui permet de parcourir un fichier avec des renvois
automatiques de bouton en bouton.



BOUTON

   Un mot ou un groupe de mots sélectionné dans un texte.

   Dans HE il est signalé par:
     - une couleur particulière
     - quand l'option /M est passée sur la ligne de commande il est
       encadré par deux marqueurs (code ASCII 16 et 17) de forme de
       triangles "a pointe horizontale", sinon il est encadré par
       deux blancs. (Tenir compte du fait que ces marques ne seront
       pas matéraialisées dans HV pour l'alignement du texte).

  ATTENTION ces deux caractères sont RESERVES par HE.

   Dans HV il n'est signalé que par une couleur particulière.


INFORMATION

   Le texte (en général une définition ou un exemple) associé à un
bouton.

  Dans HE une information débute par le caractère ASCII 31 et termine
par le caractère ASCII 30 (des triangles "pointe verticale".

  ATTENTION ces deux caractères sont RESERVES par HE.

  Tout le texte qui se trouve entre ces deux marqueurs apparaîtra dans
la fenêtre information de HV.

  La première ligne non blanche est considérée comme l'identificateur
de l'information, elle correspond (en général, sinon elle n'est
accessible que via l'index) au texte d'un bouton (il n'y a pas de
distinction entre les majuscules et les minuscules).


RESERVES

    Certains caractères sont réservés par HE. Il s'agit de ^J, ^M les
marques de fin de ligne, ainsi que des marques de début et fin de
bouton (16 et 17 ASCII) ainsi que des marques de début et fin
d'information (30 et 31 ASCII).

    Bien que les marques de bouton puissent être introduites par la
commande ESC il est vivement déconseillé de la faire (et puis la
commande Hypertexte/Bouton est tellement plus confortable!..)


MOT

    Suite de caractères délimités par des espaces c'est à dire un
blanc ou une tabulation ou bien le début ou la fin d'une ligne.


LIGNE DE MENU

   La ligne du bas de la fenêtre.


RESTAURER

   Annuler l'action de la dernière destruction.


MARQUAGE

   Pour marquer un bloc (le mode marquage étant actif), déplacer le
curseur avec les touches de déplacement, la partie sélectionnée change
de couleur.


TOUCHES DE DEPLACEMENT

   Ce sont les flèches, PgUp, PgDn, Home, End,
   Ctrl-flèche, Ctrl-PgUp, Ctrl-PgDn.


DESTRUCTION

   Une destruction de ligne ou bloc n'est pas définitive: la portion
de texte détruite est sauvegardée dans la poubelle et peut être
restaurée (par F5).


MENU

   Une ligne de menu apparaît en bas de la fenêtre.

   Dans tout menu les touches actives sont celles suivies de ), par
exemple F2)Sauve signifie que la sauvegarde est déclenchée par la
touche F2 ou bien dans les menus qui ne comportent pas de parenthèses,
celles en majuscules, par exemple Sauve signifie que la sauvegarde est
lancée par la pression de S. Certaines touches sont indiquées par la
transcription en majuscules de leur marquage sur le clavier, par
exemple SUPPRime désigne la touche marquée Suppr.

   Certains menus sont trop longs pour tenir dans la largeur de la
fenêtre ce qui est signalé par F10)... à droite de la ligne de menu,
presser F10 fait apparaître un autre morceau du menu.

   On sort de tout menu (sauf l'édition) par ESC ou en général par
une touche non active dans ce menu.


MODE

   En mode insertion (par défaut) tout caractère tapé se place à la
position courante en repoussant vers la droite les caractères situés
à droite du curseur.

   En mode remplacement tout caractère tapé remplace celui sous le
curseur. Ce mode est signalé (sous MSDOS) par un curseur plus épais.


EDITEUR

   HE est un éditeur permettant de créer un hypertexte.

   Il peut-être configuré afin de l'adapter au goût de
l'utilisateur. On passe les options de configuration sur la
ligne de commande au lancement dont la syntaxe est:

   HE [fichier [fichier...]] /{option}


OPTIONS DE CONFIGURATION

   /bxx xx = la taille par défaut du buffer d'édition
   /mxx xx = couleur de la ligne de message (en bas) de la fenêtre
   /cxx xx = couleur des fenêtres
   /fxx xx = type du bord de fenêtre (0-15)
   /kxx xx = fichier macros
   /lxx xx = numéro de la ligne de départ (par défaut la première...)
   /Hxx xx = ligne de commande de l'aide
   /wx1,y1,x2,y2 coordonnées des fenêtres (origine 0, 0)
   /L   force la couleur monochrome (pour écrans LCD)
   /dxx xx = le chemin de sauvegarde de buffer.tmp utilisé par PCS
   /ixx xx = la largeur de l'indentation (par défaut trois caractères)
   /rxx xx = nom du fichier contenant les mots-clés (par défaut ceux définis par la norme ISO)
             (avec ce switch /r les mots de fichier sont AJOUTES à ceux par défaut)
   /Rxx xx = nom du fichier contenant les mots-clés (par défaut ceux définis par la norme ISO)
             (avec ce switch /R les mots de fichier REMPLACENT ceux par défaut)

Exemple: cette aide a été réalisée par la commande suivante, placée
dans un fichier .BAT

@echo off
if "%1"=="" goto default
he %1 /w5,3,75,21 /f15 /c30 "/Hhv he.hlp"
goto end
:default
pick *.hlp -ehe "-a/w5,3,75,21 /f15 /c30 \"/Hhv he.hlp\""
:end

(PICK.EXE est un programe qui fait apparaître les fichiers requis -ici
*.hlp- dans une fenêtre et permet une sélection par les touches de
déplacement du curseur; la commande qui suit -e est alors excercée sur
ces fichiers).

Sur un portable dont l'écran LCD n'est guère riche en couleurs on
utilisera:

@echo off
if "%1"=="" goto default
he %1 /w5,3,75,21 /f15 /L "/Hhv he.hlp"
goto end
:default
pick *.hlp -ehe "-a/w5,3,75,21 /f15 /L \"/Hhv he.hlp\""
:end


LIGNE D'ETAT

   Sur la ligne d'état (en haut de la fenêtre d'édition) on lit
     à gauche:
       le nom du fichier en cours d'édition dans la fenêtre
     à droite:
       les numéros des ligne et colonne courantes
       dans l'ordre, des indicateurs
         (I/R) de mode,
         (*) de fichier modifié,
         de texte non affiché (décalé)
            (<) à gauche
            (>) à droite (ligne --dans la page affichée-- plus longue
                          que la largeur de la fenêtre)
         de morceau
            avant (ASCII 30 ou ^)
            après (ASCII 31 ou v)


MACRO

    Une macro est une suite de touches qui peut être mémorisée pour
restitution ultérieure.

    On restitue une macro en soit:
        - pressant la touche de déclenchement associée
        - entrant son alias après requête

    Exemple: la suite de touches écrivant
         for ( ; ; ) {

         }
peut-être enregistrée (Macro/Enregistre), associée à l'alias: for
et à la touche de déclenchement: Ctrl-F.


ALIAS

    C'est le raccourci associé à une macro
    Il y a encore plus court: la touche de déclenchement.

    Pour changer l'alias d'une macro il faut la ré-enregistrer et
fournir un nouvel alias. Par contre  touche de déclenchement peut
être modifiée facilement.


TOUCHE DE DECLENCHEMENT

    C'est la touche (unique) qui lance la restitution d'une macro
    Cette touche peut-être changée pour toute macro par la commande
Macro/Associe.



Shift

    Shift-TOUCHE signifie qu'il faut presser à la fois la touche TOUCHE
et une des touches MAJUSCULE.


Ctrl

    Ctrl-TOUCHE signifie qu'il faut presser à la fois la touche TOUCHE
et une des touches marquées Control ou Ctrl.


Home

    La touche marquée soit Home soit d'une flèche oblique dirigée vers
la gauche.


End

    Aussi marquée Fin.


PgUp

    Aussi marquée d'une flèche barrée pointe en haut.


PgDn

    Aussi marquée d'une flèche barrée pointe en bas.


Suppr

    Aussi marquée Del.


Inser

    Aussi marquée Ins.


RECHERCHE

    Actionnée par F7 ou Shift-F7 pour une recherche avec remplacement.

    Pour saisir une fin de ligne dans une expression taper:
       Ctrl-P, Ctrl-M et sous MSDOS Ctrl-J

    Par défaut le champ de la recherche va de la position courante du
curseur jusqu'à la fin du morceau en courant, et elle se fait en
respectant majuscules et minuscules. Ces défauts peuvent être modifiés
par les options:

    f  recherche dans TOUT LE FICHIER et pas seulement le morceau
       courant éventuel
    g  recherche globale et pas depuis la position courante
    w  mot seul. Par exemple si vous recherchez "tata" avec cette
       option vous ne trouverez pas "taratata"
    n  remplacements multiples sans CONFIRMATION
    u  ignorer majuscules et minuscules

    Lorsque la recherche réussit, une pause vous permet de voir en
vidéo inverse l'expression trouvée. Presser une touche la reprend. Il
faut presser ESC pour INTERROMPRE.


ccTEDm.LIB
 ^^   ^
 ||   └---- modèle mémoire
 └└--- compilateur C (Borland, Zortech, Microsoft, Coherent)

   ccTEDm.LIB est une bibliothèque de fonctions C permettant d'inclure
un éditeur de texte dans vos applications.

   L'utilisation la plus simple:

     void tiny_editor( void );
     {
          void *ped = NULL;

          ed( &ped );
     }

crée un éditeur mono-fichier dans une fenêtre occupant tout l'écran.
Ce petit éditeur dispose néanmoins de possibilités de blocs, poubelle
et recherche/remplacement.


INDENTATION

   EDLISP tente de respecter l'indentation propre à SCHEME.
   Lors de l'indentation d'un bloc, celle ci n'est possible que s'il
commence par une (. Un compte-rendu du nombre de parenthèses est donné
si celui-ci est incorrect.


MOTS-CLES

   Les mots-clés définis par la morme ISO sont:

         define  lambda  case  let  let*  letrec
         call-with-input-file call-with-output-file
         with-input-from-file  with-output-to-file

   Ce sont ceux utilisés par défaut par EDLISP.
   On peut enrichir cette liste en les indiquant dans un fichier texte
au format MSDOS (ie ^J^M en fin de ligne). Il suffit d'écrire ces mots
dans le fichier à raison d'un par ligne:
define
lambda
case
let
let*
letrec
....

